package com.wpre.blogsystem.service.impl;

import com.wpre.blogsystem.service.PictureService;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * Created with IntelliJ IDEA.
 * Description: 上传图片
 * User: LianBao
 * Date: 2024-12-21
 * Time: 11:37
 */
public class PictureServiceImpl implements PictureService {
    private static final String localPath = "";

    @Override
    public String savePicture(MultipartFile multipartFile) {
        //1.创建一个目录,将来所有保存的图片都保存在这里
        File dir = new File(localPath);

        if (!dir.exists()) {
            //如果路径不存在,就新建一个目录
            dir.mkdirs();//

        }
        //2.创建索引,将上传的文件名进行转换,转换成一个唯一的值 例如用户上传的图片对应保存的图片, a.jpg -->xx.jpg
        //2.1 获取当前上传的文件的文件全名称
        String filename = multipartFile.getOriginalFilename();
        assert filename != null;//断言一下,originalFilename不能为空
        //2.2 获取文件的后缀名
        String suffix = filename.substring(filename.lastIndexOf("."));//从最后一个点开始截取
        //2.3 生成索引
        UUID uuid = UUID.randomUUID();


        //2.4 将索引和后缀进行拼接
        filename = uuid + suffix;


        //3.图片保存
        try {
            multipartFile.transferTo(new File(localPath + "/" + filename));//目标路径/文件名
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        //transferTo : 将当前的multipartFile(也就是图片) 写入进一个目标文件localPath/filename
        return filename;
    }
}
